A routing protocol controls how nodes in a computer network system communicate with each other. The nodes are connected by links to form a topology in which the nodes disseminate messages over the network. The block diagram of FIG. 1 illustrates a conventional routing protocol architecture 10. The routing protocol architecture 10 includes a component for message communications 12, a database 14, and a routing algorithm 16. Messages are disseminated throughout the network of nodes in accordance with a process of the message communications 12.
The disseminated messages are stored in the database 14, distributed among the network of nodes. The content of the database 14 is used by the routing algorithm 16 to calculate routing paths, which are collectively stored in each node's routing table. The format, exchange, and synchronization of messages, as well as routing calculations, are all tightly integrated with the routing protocol architecture 10.
For example, link-state routing protocols, such as open shortest path first (OSPF) and intermediate system to intermediate system (IS-IS), include processes performed by each node to construct a topological map. The messages can be propagated over the network by using flooding, where every incoming packet is sent through every outgoing link except the one it arrived on. In this example, the routing protocols include a distributed database that stores link-state and prefix data used by each node to calculate paths to every destination in the network. The collection of paths forms the node's routing table.
Thus, the nodes use proprietary routing protocols to run rigid processes for message communications, synchronization, and calculating routing paths. The protocols are limited to performing routing functions and cannot scale well in networks that exceed 1,000 nodes because flooding scales poorly due to significant overhead, especially in meshed wireless networks.